package com.miracle.erp.toJSP;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilterOutputStream;

public class HtmlToJsp {
    // 源目录,存放html文件
	private static String oldFilePath = "D:\\old\\";
	// 目标输出目录,存放转换之后的jsp文件
	private static String targetFilePath = "D:\\newHTML\\";
	public static void main(String[] args) {
        // 把html文件放到D盘old文件夹中
		File file = new File(oldFilePath);
		copyMenu(file);
        System.out.println("完成");
	}

	/**
	 * 千万注意!!!! 原路径和目标路径不能一直,否则凉凉了,目录中所有文件全部清空,找不回来
	 */
    // 资源文件位置
	private static String resources="<%=request.getContextPath()%>/resources";
	public static void copyMenu(File f) {
		if (f.isFile()) {
			// 获取文件的全路径
			String filePath = f.getAbsolutePath();
			// 获取文件名  xxx.html
			String fileName = f.getName();
            // 转换之后  保存jsp的文件夹
			String newFilePath = targetFilePath+fileName.substring(0,fileName.lastIndexOf("."))+".jsp";

			// 获取目标文件路径的父目录
			File parentFile = new File(newFilePath).getParentFile();
			// 判断目标目录是否存在
			if (!parentFile.exists()) {
				// 不存在就递归创建,mkdirs能够自动递归创建
				parentFile.mkdirs();
			}

			// 到了这里 目标目录就有了
			// 复制
			try(
					// 原文件是输入流
					FileReader fr = new FileReader(filePath);
					// 目标文件是输出流
					FileWriter fw = new FileWriter(newFilePath);
					
					BufferedReader br = new BufferedReader(fr);
					BufferedWriter bo = new BufferedWriter(fw);
					) {
				String tmp = null;
				// 加入头信息
				bo.write("<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>");
				bo.newLine();
				while ((tmp=br.readLine()) != null) {
					// 如果包含css引入
					if (tmp.contains("./css/")) {
						// 替换
						tmp=	tmp.replace("./css/", resources+"/css/");
					}
					if (tmp.contains("./js/")) {
						// 替换
						tmp=	tmp.replace("./js/", resources+"/js/");
					}
					if (tmp.contains("./lib/")) {
						// 替换
						tmp=	tmp.replace("./lib/", resources+"/lib/");
					}
					if (tmp.contains("./images/")) {
						// 替换
						tmp=	tmp.replace("./images/", resources+"/images/");
					}
					bo.write(tmp);
					bo.newLine();
				}
				bo.flush();
			} catch (Exception e) {
				e.printStackTrace();
			}
			return;
		}

		// 能执行到这里 说明是文件夹
		File[] fs = f.listFiles();
		for (File file : fs) {
			copyMenu(file);
		}
	}
}
